// -*- coding: utf-8 -*- 
/**
 * Project: AlgorithmsLearn
 * Creator: yanking
 * Create time: 2022-03-02 15:11
 * IDE: IntelliJ IDEA
 * Introduction:
 */
package com.LeetCodeT.Greedy;

import java.util.ArrayList;
import java.util.LinkedList;

public class LemonadeChange {
    public boolean lemonadeChange(int[] bills) {
        // 贪心算法-> 找零的时候先从大的找
        // 钱：5、10、20
        int five = 0;
        int ten = 0; // 只需要记录10和5的数量，20的数量不用记录；因为20的零钱找不到零
        int n = bills.length;
        for (int i = 0; i < n; i++) {
            int bill = bills[i];
            if (bill == 5) {
                five++;
            } else if (bill == 10) {
                ten++;
                if (five >= 1) { // 当前有零钱可以找
                    five--;
                } else {
                    return false;
                }
            } else if (bill == 20) {
                if (ten >= 1 && five >= 1) {// 当前零钱足够找零
                    ten--;
                    five--;
                } else if (five >= 3) { // 当顾客给出20的时候，店里只有5块钱零钱进行找零
                    five -= 3;
                } else {
                    return false; // 当前零钱不够找零
                }
            }
        }
        return true;
    }
}
